package com.bz;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;


@EnableAutoConfiguration //作用：开启自动配置 初始化spring环境 springmvc环境
@ComponentScan //用于扫描相关注解  默认扫描范围是入口类所在的包及其子包
//@SpringBootApplication //可以使用这个注解替代上面两个注解
public class Application {
    public static void main(String[] args) {

        // springApplication spring的应用类，用来启动springboot应用
        // 参数1：传入入口类 类对象
        // 参数2： main函数的参数
        SpringApplication.run(Application.class,args);

    }


}
/**
 * @EnableAutoConfiguration 作用：开启自动配置，只能用在类上
 * 实际作用：根据pom文件中依赖自动判断现开发环境，如在第一个环境中引入  spring-boot-starter-web
 * 会自动根据引入的依赖构建相关环境
 *
 * @ComponentScan: 用于扫描注解，只能作用于类上  默认扫描范围是入口类所在的包及其子包
 *
 *
 * @RestController 作用：用来实例化当前对象为一个控制器对象，并将类上所有方法的返回值转为json，返会给浏览器
 *      @Controller（实例化当前类为一个控制器） +@ResponseBody（将当前方法的返回值转为json，并返回给浏览器）
 *      修饰范围作用于类上
 *
 *
 * @RequestMapping // 作用：用来加入访问路径，修饰范围：类（引入命名空间） 方法上（指定具体路径）
 * @GetMapping // 限定请求方式只能时GET，并指定路径，修饰范围一般用于方法生
 * @PostMapping
 * @DeleteMapping
 * @PutMapping
 *
 *
 * main方法 通过标准的java入口方式委托给SpringApplication,并告知当前springboot主应用类是谁，从而启动springboot中的tomcat
 *
 *              args:启动时可以指定外部参数
 *
 *              VM option -D:代表向当前运行类传参  -Dserver.port=9999
 */


/**
 *
 *
 * starters:  启动器
 *      是一组方便的依赖关系的描述符
 */
